#include<bits/stdc++.h>
using namespace std;
const int maxn = 1010;
int pos[5][2] = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}, {0, 0}};
int n , m;
string a[maxn];
int flipn[maxn][maxn] = {0};
int main(){
	cin >> n >> m;
	for (int i=0; i<n; i++) {
		cin >> a[i];
	}
	int ans = 0;
	bool flag = false;
	for (int i=0; i<n; i++) {
		for (int j=0; j<m; j++) {
			int num = 0;
			int p = -1;
			for (int k=0; k<5; k++) {
				int x = i+pos[k][0];
				int y = j+pos[k][1];
				if (x>=0 && x<n && y>=0 && y<m){
					if (a[x][y] == '#') {
						num ++;
						p = k;
					}
				} 
			}
			if (num == 1) {
				int x = i + pos[p][0];
				int y = j + pos[p][1];
				flipn[x][y] ++;
			} else if (num == 0) {
				ans ++;
			} 
		}
	}
	int mx = 0;
	for (int i=0; i<n; i++) {
		for (int j=0; j<m; j++) {
			mx = max(mx, ans + flipn[i][j]);
		}
	}
	cout << mx << endl;
	return 0;		
}
